// src/router/routes.js

import {createRouter, createWebHashHistory} from "vue-router";


const views = import.meta.glob("@/views/**/*.vue");

const routes = []

for (const path in views) {
  let name = path
    .replace(/^\/src\/views/, "")
    .replace(/\.vue/, "")
    .replace(/\/index/, "")
    .replace(/\[/, "/:")
    .replace(/]/, "")
  if (name === "/login") continue;
  routes.push({
    path: name || '/',
    name: name.replaceAll('\/','') || '/',
    component: views[path]
  })
}
console.log("routers===>", routes)

const router = createRouter({
  history: createWebHashHistory(),
  routes,
})

export default router

const excludeUrls = ['/login', '/404']

// router.beforeEach(async (to, from, next) => {
//   // const userStore = useUserStore()
//   //
//   // // 检查用户是否已登录
//   // if (!userStore.token) {
//   //   if (to.path === '/login') {
//   //     // 已登录，访问登录页，重定向到首页
//   //     next({ path: '/' })
//   //   } else {
//   //     // 检查动态路由是否已生成
//   //     const permissionStore = usePermissionStore()
//   //     if (permissionStore.routes.length === 0) {
//   //       try {
//   //         // 获取菜单数据并生成动态路由
//   //         const menuRes = menuList //await getMenuList();
//   //         await permissionStore.generateRoutes(menuRes)
//   //
//   //         // 确保动态路由已添加，然后继续导航
//   //         next({ ...to, replace: true })
//   //       } catch (error) {
//   //         // 处理错误，例如登出并重定向到登录页
//   //         userStore.logout()
//   //         next(`/login?redirect=${to.path}`)
//   //       }
//   //     } else {
//   //       // 动态路由已生成，直接放行
//   //       next()
//   //     }
//   //   }
//   // } else {
//   //   console.log('=========else========>', to.path)
//   //   // 未登录，检查是否允许匿名访问
//   //   if (!excludeUrls.includes(to.path)) {
//   //     next(`/login?redirect=${to.path}`)
//   //   } else {
//   //     next()
//   //   }
//   // }
// })


// router.afterEach((to, from, failure) => {
//   if (failure) {
//     console.log('=========afterEach====1====>', to, from, failure)
//   }else{
//     console.log('=========afterEach=====2==ok=>', to, from, failure)
//   }
// })
